Two types of 2-D image transformations include translation and rotation. Any point in the (x,y) plane may be translated to a new position by adding translation amounts to the coordinates of the point. For each point P(x,y) to be moved by dx units parallel to the x axis and by dy units parallel to the y axis to the new point P′(x′,y′), x′=x+dx and y′=y+dy. Because each line in an object is made up of an infinite number of points, however, the translation process would take an infinitely long time. All points may be translated, by translating the line's end points and by drawing a new line between the translated endpoints.
Any point in the (x,y) plane may be rotated through an angle θ about the origin. A rotation is defined mathematically by x′=x cos θ−y sin θ, y′=x sin θ+y cos θ. Positive angles are measured counterclockwise from x towards y. For negative (clockwise) rotations, the identities cos (−θ)=cos θ and sin(−θ)=−sin θ may be used.
Prior art rotational transformations rely on software to perform the rotation. For example, a processor performs cosine and sine functions as described above to calculate the rotated coordinates. Performing advanced trignometric functions requires extensive computational processor cycles to complete a single pixel transform.
In one prior art direct rotation approach, a new location is calculated for each pixel by appropriate trigonometric function, thereby rotating the image through the desired angle. However, the direct calculation approach is much too slow for use in screening stored images in which each output pixel is computed from a scanned input image as the source image. It is inefficient as well, because direct calculation requires a large memory bandwidth because of single pixel access and memory page breaks, without sequential access to memory address space. The prior art direct rotation calculation of a rotated image can require many computational cycles per image scan line, which increases the cost of rotation systems.
Direct calculation approaches are additionally defective in computer display applications, especially in mobile computing and handheld computing devices. These devices may only need a limited transformation, for example rotation by fixed amounts, such as 0°, 90°, 180°, or 270° and, therefore, direct mathematical rotations may be very inefficient and costly.